package org.hardcode.rpc.common.utils;

import java.io.InputStream;
import java.util.stream.IntStream;

public class SerializationUtils {

    private static final String  PADDING_STRING ="0";

    //约定序列化类型最大的长度  16
    public  static final  int MAX_SERIALIZATION_TYPE_COUNR=16;

    //为长度不足16位的 需要补0
    public static   String  paddingString(String str){
        str=transNullToEmpty(str);
        if(str.length()>=MAX_SERIALIZATION_TYPE_COUNR) return str;
        int paddingCount=MAX_SERIALIZATION_TYPE_COUNR-str.length();
        StringBuilder paddingString = new StringBuilder(str);

        //这里实现自动追加的功能
        IntStream.range(0,paddingCount).forEach((i)->{
            paddingString.append(PADDING_STRING);
        });

        return paddingString.toString();

    }

    /**
     * 字符串去掉0 的操作
     * @param str 原始的字符串
     * @return  去0 后的字符串
     */
    public  static String  subString(String str){
        str = transNullToEmpty(str);

        return str.replace(PADDING_STRING,"");
    }

    public static String  transNullToEmpty(String str){
        return  str==null?"":str;
    }
}
